tg-me.com/csharpproglib/5827
Last Update:
Если вы когда-либо пытались внедрить .NET Identity в реальном проекте, скорее всего, в какой-то момент хотели всё выбросить и переписать вручную. Ошибки, магия, дублирующиеся слои абстракций — создаётся ощущение, будто Microsoft намеренно сделала систему сложной. Но действительно ли всё так плохо?
⚠️ Боль разработчиков
• Создаётся впечатление, что каждая операция в Identity прячется в отдельном сервисе, интерфейсе, конструкторе, и всё это трудно дебажить или изменить без побочного эффекта.
• Хочется добавить поле «роль по умолчанию»? Придётся лезть в UserStore, ClaimsPrincipal, кастомизировать SignInManager, и всё это — чтобы в итоге наткнуться на какое-нибудь исключение в рантайме.
• Информации много, но она либо слишком базовая, либо устаревшая. Найти последовательный, жизненный путь от «у меня есть пользователь» до «работающая авторизация и кастомные роли» — задача не для слабонервных.
• Всё как будто работает «само», пока не надо изменить стандартный пайплайн. А как только вы влезаете внутрь — начинается танец с отладчиком.
💡 Почему всё-таки используют Identity
• Это из коробки. Не нужно писать свою систему безопасности (что, к слову, тоже не лучшая идея, если вы не эксперт в этой области).
• Она глубоко интегрирована с ASP.NET Core — пайплайны, мидлвары, авторизация через policy и claims.
• Есть возможность настроить под корпоративные сценарии: многофакторная авторизация, внешние логины, JWT, и всё это — пусть и криво, но реализуемо.
🔁 Есть ли альтернатива
• Сторонние провайдеры (Auth0, Azure AD B2C): проще, но вы зависите от внешнего сервиса.
• Собственные реализации: подойдёт, если требования простые, но нужна аккуратность в вопросах безопасности.
• Обёртки над Identity: некоторые компании и команды создают свои слои поверх Identity, скрывая его сложности и предоставляя более удобный API.
💬 Вы пробовали настраивать Identity с нуля? С какими проблемами столкнулись? Делитесь своим опытом и мнением в комментариях 👇